<?php
	function isNum($nombre,$min=null,$max=null){	
		$resultat=false;
		if(isset($nombre)){
			if(is_numeric($nombre)){
				$resultat=true;
				if($min!=null){
					if($nombre<$min){
						$resultat=false;
					}
				}
				if($max!=null){
					if($nombre>$max){
						$resultat=false;
					}
				}
			}
		}	
		return $resultat;
	}
	function isOnly($texte){
		$resultat=false;
		if(isset($texte)){
			$resultat=true;
			$nb=func_num_args();
			if($nb>1){
				$resultat=false;
				$i=1;
				for($i;$i<$nb;$i++){
					if(func_get_arg($i)==func_get_arg(0)){
						$resultat=true;
					}
				}
			}
		}
		return $resultat;
	}
	function tab_to_xml($tab,$name="elmt"){
		$xml="";
		$numeric=true;
		if(is_array($tab)){
			foreach($tab as $key=>$value){
				if(!is_numeric($key)){
					$numeric=false;
				}
			}
			foreach($tab as $key=>$value){
				if($numeric || !is_numeric($key)){
					$name_balise=keepOnly((($numeric)?$name:$key),"[:alnum:]");
					$name_balise=eregi_replace("^[[:digit:]]+","",$name_balise);
					$xml.="\t<".$name_balise.">";
					if(is_array($value)){
						$xml.="\n";
						$numerique=true;
						foreach($value as $cle=>$valeur){
							if(!is_numeric($cle)){
								$numerique=false;
							}
						}
						foreach($value as $cle=>$valeur){
							if($numerique || !is_numeric($cle)){
								$nom_balise=keepOnly((($numerique)?$name:$cle),"[:alnum:]");
								$nom_balise=eregi_replace("^[[:digit:]]+","",$nom_balise);
								$xml.="\t\t<".$nom_balise.">".cleanXML($valeur)."</".$nom_balise.">\n";
							}
						}
					}else{
						$xml.=cleanXML($value);
					}
					$xml.="\t</".$name_balise.">\n";
				}
			}
		}
		return $xml;
	}
	function keepOnly($texte,$modele){
		return $texte=eregi_replace("[^".$modele."]","",$texte);
	}
	function isKeepOnly($texte,$modele,$min=null,$max=null){
		$resultat=false;
		if(isset($texte)){
			$texte2=keepOnly($texte,$modele);
			if($texte==$texte2){
				$resultat=true;
				if($min!=null){
					if(strlen($texte)<$min){
						$resultat=false;
					}
				}
				if($max!=null){
					if(strlen($texte)>$max){
						$resultat=false;
					}
				}
			}
		}
		return $resultat;
	}
	function cleanXML($texte){
		$texte=ereg_replace("&amp;","&",$texte);
		$texte=ereg_replace("&lt;","<",$texte);
		$texte=ereg_replace("&gt;",">",$texte);
		$texte=ereg_replace("&quot;",'"',$texte);
		$texte=ereg_replace("&apos;","'",$texte);
		$texte=ereg_replace("&","&amp;",$texte);
		$texte=ereg_replace("<","&lt;",$texte);
		$texte=ereg_replace(">","&gt;",$texte);
		$texte=ereg_replace('"',"&quot;",$texte);
		$texte=ereg_replace("'","&apos;",$texte);
		return $texte;
	}
	function isMail($adresse)
	{
	  	$resultat=false;
		if(isset($adresse)){
		   $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
		   if(preg_match($Syntaxe,$adresse))
		      $resultat=true;
		   else
		    $resultat=false;
		}
		return $resultat;
	}
	function isMD5($texte){
		$resultat=false;
		if(isset($texte)){
			if(strlen($texte)==32){
				if(isKeepOnly($texte,"[0-9]abcdef")){
					$resultat=true;
				}
			}
		}	
		return $resultat;
	}
	function generateMDP($size=10){
		$a=split("\+","a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+0+1+2+3+4+5+6+7+8+9");
		$i=0;
		$resultat="";
		for($i;$i<$size;$i++){
			$resultat.=$a[rand(0,sizeOf($a)-1)];
		}
		return $resultat;
	}
	function get_ip(){ 
		if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){ 
			$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];} 
		elseif(isset($_SERVER['HTTP_CLIENT_IP'])){ 
			$ip = $_SERVER['HTTP_CLIENT_IP'];} 
		else{ $ip = $_SERVER['REMOTE_ADDR'];} 
		return $ip;
	}
?>
